import java.util.HashMap;
import java.util.Map;

public class test2 {

    public static void main(String[] args) {
        System.out.println(minNumberOfFrogs("crcoakroak"));
    }
    public static int minNumberOfFrogs(String croakOfFrogs) {

            // 通用版本，所以这个是“呱呱的单词”，下次可能就不是了
            String t = "croak";
            int n = t.length();
            // 存放字符的数量
            int[] hash = new int[n];
            // 映射字符与hash数组的下标关系,因为你不知道"呱呱”的单词是什么
            Map<Character, Integer> index = new HashMap<>();

            for(int i = 0;i<n;i++){
                index.put(t.charAt(i), i);
            }
            char[] arr = croakOfFrogs.toCharArray();
            for (int i = 0; i < arr.length; i++) {
                char temp = arr[i];
                if (temp != t.charAt(0)) {
                    // 获取当前字符的前驱字符的下标
                    int charIndex = index.get(temp) - 1;
                    if (hash[charIndex] != 0) {
                        hash[charIndex]--;
                        hash[charIndex + 1]++;
                    } else {
                        return -1;
                    }
                } else {     //读到的是0
                    //如果最后的字符不为0，则最后字符数量“转移”到第一个字符
                    if (hash[n - 1] != 0) {
                        hash[n - 1]--;
                        hash[0]++;

                    } else {      //如果最后的字符为0，则第一个字符++
                        hash[0]++;
                    }
                }
            }
            //判断hash数组前n-1个是否有0
            for (int i = 0; i < n - 1; i++) {
                if (hash[i] != 0) {
                    return -1;
                }
            }
            //最后返回hash数组里最后一个字符的数量
            return hash[n - 1];
        }
}
